package com.qtest.qandroid.util;

/**
 * @author Yu
 * @time 2019/12/1 16:34
 */
public class gpsDistance {
    /**
     * 根据两个经纬度坐标计算距离
     * @param lon1
     * @param lat1
     * @param lon2
     * @param lat2
     * @return 距离 米
     */
    public static double getDistance(double lon1, double lat1, double lon2, double lat2) {

        double radLat1 = rad(lat1);
        double radLat2 = rad(lat2);

        double a = radLat1 - radLat2;
        double b = rad(lon1) - rad(lon2);

        double c = 2 * Math.asin(Math.sqrt(
                Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math
                        .pow(Math.sin(b / 2), 2)));

        c = c * 6378.137;// 6378.137赤道半径

        return (Math.round(c * 10000d) / 10000d)*1000;

    }

    private static double rad(double d) {
        return d * Math.PI / 180.0;
    }

}
